The essence of computer networking, be it wired or wireless, is the ability to transfer information from one computing device to another. The types of information transferred typically include control information, e.g. information pertaining to establishing or managing the network connection, and application data, e.g., information being transferred from or on behalf of some application level entity. Application data can make especially stringent demands of network capacity. Examples of application data include audio and video information, text, graphics, etc.
In a networking environment it is often important for entities involved in networking tasks to be able to estimate how much bandwidth is or could be available for a particular use. For example, if insufficient bandwidth is available, then it may not make sense to start a task that would have to be performed inadequately or later aborted. Alternatively, given an estimation of bandwidth, it may be possible for the application to adapt, e.g., switch to a lower-quality stream. Often the streaming transmission of audio and video information requires a certain quality of service in order to provide a satisfactory user experience, and if that quality of service is not available then the user experience will be lacking.
The bandwidth of a particular network path is typically not constant, but rather varies, sometimes substantially, in time. A number of factors may impact bandwidth at any particular time. For example, a number of applications or machines competing for bandwidth can diminish the bandwidth available to any one entity. Moreover, cross traffic at nodes in a path also affect bandwidth on that path. In wireless networks, any number of additional factors can influence available bandwidth. For example, a number of devices and appliances emit radio frequency radiation that can interfere with wireless systems. Moreover, signal attenuation, whether due to distance or obstructions, can also affect the bandwidth.
A number of end-to-end techniques have been developed for measuring network capacity and available bandwidth. These techniques assume that the constrained link can be modeled as a point-to-point link with a well-defined bandwidth, serving packets in first in first out (FIFO) order. However, a number of networks such as broadband access networks do not fit model. Such networks include, for example, cable modem and 802.11-based wireless networks. These types of networks defy bandwidth estimation by present techniques for reasons including (1) employment of mechanisms such as token bucket rate regulation, (2) scheduling of packets in a non-FIFO manner, and (3) use of multiple distinct rates, which can also result in bursty cross-traffic patterns.